[INFO] fetching crate aggligator 0.9.11...
[INFO] fixing aggligator-0.9.11 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate aggligator 0.9.11 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate aggligator 0.9.11
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate aggligator 0.9.11
[INFO] tweaked toml for crates.io crate aggligator 0.9.11 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate aggligator 0.9.11 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate aggligator 0.9.11 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351
[INFO] running `Command { std: "docker" "start" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking rand_core v0.10.1
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking spin v0.10.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking atomic_refcell v0.1.13
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking crc-fast v1.10.0
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling test-log-macros v0.2.19
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking tokio v1.51.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking test-log v0.2.19
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking aggligator v0.9.11 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/agg/task.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:366:23
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 match self.rx.next().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |              |
[INFO] [stdout]     |                       |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 405 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:566:19
[INFO] [stdout]     |
[INFO] [stdout] 566 |             match self.event().await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |            |
[INFO] [stdout]     |                   |            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |            up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 571 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:586:23
[INFO] [stdout]     |
[INFO] [stdout] 586 |                 match self.event().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |            |
[INFO] [stdout]     |                       |            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |            up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 597 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:471:45
[INFO] [stdout]      |
[INFO] [stdout]  471 |                   if let Some(connected_tx) = self.connected_tx.take() {
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                               |
[INFO] [stdout]      |                                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                               up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  476 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  996 |                   TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      |                                                --------  ------
[INFO] [stdout]      |                                                |         |
[INFO] [stdout]      |                                                |         `permit` calls a custom destructor
[INFO] [stdout]      |                                                |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                `received` calls a custom destructor
[INFO] [stdout]      |                                                `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |                           ReliableMsg::Data(data) => {
[INFO] [stdout]      |                                             ----
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             `data` calls a custom destructor
[INFO] [stdout]      |                                             `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1003 |                                   permit.send(data);
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:480:35
[INFO] [stdout]      |
[INFO] [stdout]  480 |                   if let Some(tx) = self.flushed_tx.take() {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                     up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  484 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  996 |                   TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      |                                                --------  ------
[INFO] [stdout]      |                                                |         |
[INFO] [stdout]      |                                                |         `permit` calls a custom destructor
[INFO] [stdout]      |                                                |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                `received` calls a custom destructor
[INFO] [stdout]      |                                                `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |                           ReliableMsg::Data(data) => {
[INFO] [stdout]      |                                             ----
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             `data` calls a custom destructor
[INFO] [stdout]      |                                             `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1003 |                                   permit.send(data);
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:810:48
[INFO] [stdout]      |
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  810 |                                   } else { match self
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout]      | |________________________________________________|
[INFO] [stdout]  811 | |                                     .write_rx
[INFO] [stdout]  812 | |                                     .as_mut()
[INFO] [stdout]  813 | |                                     .filter(|_| tx_seq_avail && link.is_sendable())
[INFO] [stdout] ...    |
[INFO] [stdout]  818 | |                                         .ok()
[INFO] [stdout]  819 | |                                     })
[INFO] [stdout]      | |                                      ^
[INFO] [stdout]      | |______________________________________|
[INFO] [stdout]      | |______________________________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  844 | |                                 }}}
[INFO] [stdout]      | |                                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  996 | |                 TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      | |                                              --------  ------
[INFO] [stdout]      | |                                              |         |
[INFO] [stdout]      | |                                              |         `permit` calls a custom destructor
[INFO] [stdout]      | |                                              |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                              `received` calls a custom destructor
[INFO] [stdout]      | |                                              `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  999 | |                         ReliableMsg::Data(data) => {
[INFO] [stdout]      | |                                           ----
[INFO] [stdout]      | |                                           |
[INFO] [stdout]      | |                                           `data` calls a custom destructor
[INFO] [stdout]      | |                                           `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 1003 | |                                 permit.send(data);
[INFO] [stdout]      | |                                 -----------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/control.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 334 |             let client_secret = StaticSecret::from(random);
[INFO] [stdout]     |                 -------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `client_secret` calls a custom destructor
[INFO] [stdout]     |                 `client_secret` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 348 |             let shared_secret = client_secret.diffie_hellman(&server_public_key);
[INFO] [stdout]     |                 -------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `shared_secret` calls a custom destructor
[INFO] [stdout]     |                 `shared_secret` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |             match LinkMsg::recv(&mut rx).await? {
[INFO] [stdout]     |                                          ^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 390 |         })
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `client_secret` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/src/x25519.rs:195:40
[INFO] [stdout]     |
[INFO] [stdout] 195 | #[cfg_attr(feature = "zeroize", derive(Zeroize))]
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout] note: `shared_secret` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/src/x25519.rs:273:40
[INFO] [stdout]     |
[INFO] [stdout] 273 | #[cfg_attr(feature = "zeroize", derive(Zeroize))]
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the derive macro `Zeroize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/acceptor.rs:387:27
[INFO] [stdout]     |
[INFO] [stdout] 387 |                     match wrapper.wrap(stream_box).await {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                           |                        |
[INFO] [stdout]     |                           |                        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                           |                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                             let _ = link_error_tx.send(BoxLinkError::incoming(&tag, err));
[INFO] [stdout]     |                                     -----------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 395 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/transport/connector.rs:415:35
[INFO] [stdout]      |
[INFO] [stdout]  415 |                             match wrapper.wrap(stream_box).await {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                   |                        |
[INFO] [stdout]      |                                   |                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                   |                        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  419 |                                     let _ = link_error_tx.send(BoxLinkError::outgoing(conn_id, &tag, err));
[INFO] [stdout]      |                                             --------------------------------------------------------------
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  420 |                                     sleep(reconnect_delay).await;
[INFO] [stdout]      |                                     ----------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  424 |                         }
[INFO] [stdout]      |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Future<Output = usize>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]     --> src/agg/task.rs:1402:10
[INFO] [stdout]      |
[INFO] [stdout] 1402 |     ) -> impl Future<Output = usize> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]     --> src/agg/task.rs:1401:9
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |         ^
[INFO] [stdout]      = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]      = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:366:23
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 match self.rx.next().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |              |
[INFO] [stdout]     |                       |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 405 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:566:19
[INFO] [stdout]     |
[INFO] [stdout] 566 |             match self.event().await {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                   |            |
[INFO] [stdout]     |                   |            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                   |            up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   `__awaitee` calls a custom destructor
[INFO] [stdout]     |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 571 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/agg/link_int.rs:586:23
[INFO] [stdout]     |
[INFO] [stdout] 586 |                 match self.event().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |            |
[INFO] [stdout]     |                       |            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |            up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 597 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:471:45
[INFO] [stdout]      |
[INFO] [stdout]  471 |                   if let Some(connected_tx) = self.connected_tx.take() {
[INFO] [stdout]      |                                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                               |
[INFO] [stdout]      |                                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                               up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  476 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  996 |                   TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      |                                                --------  ------
[INFO] [stdout]      |                                                |         |
[INFO] [stdout]      |                                                |         `permit` calls a custom destructor
[INFO] [stdout]      |                                                |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                `received` calls a custom destructor
[INFO] [stdout]      |                                                `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |                           ReliableMsg::Data(data) => {
[INFO] [stdout]      |                                             ----
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             `data` calls a custom destructor
[INFO] [stdout]      |                                             `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1003 |                                   permit.send(data);
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:480:35
[INFO] [stdout]      |
[INFO] [stdout]  480 |                   if let Some(tx) = self.flushed_tx.take() {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                     up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  484 |               }
[INFO] [stdout]      |               - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  996 |                   TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      |                                                --------  ------
[INFO] [stdout]      |                                                |         |
[INFO] [stdout]      |                                                |         `permit` calls a custom destructor
[INFO] [stdout]      |                                                |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                `received` calls a custom destructor
[INFO] [stdout]      |                                                `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  999 |                           ReliableMsg::Data(data) => {
[INFO] [stdout]      |                                             ----
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             `data` calls a custom destructor
[INFO] [stdout]      |                                             `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1003 |                                   permit.send(data);
[INFO] [stdout]      |                                   -----------------
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                   `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/agg/task.rs:810:48
[INFO] [stdout]      |
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________-----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `event` calls a custom destructor
[INFO] [stdout]      | |                 `event` will be dropped later as of Edition 2024
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |             -
[INFO] [stdout]      | |             |
[INFO] [stdout]      | |             `output` calls a custom destructor
[INFO] [stdout]      | |             `output` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures_init` calls a custom destructor
[INFO] [stdout]      | |             `futures_init` will be dropped later as of Edition 2024
[INFO] [stdout]      | |             `futures` calls a custom destructor
[INFO] [stdout]      | |             `futures` will be dropped later as of Edition 2024
[INFO] [stdout]      | |_____________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  691 |                   TaskEvent::NewLink(mut link) => {
[INFO] [stdout]      |                                      --------
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      `link` calls a custom destructor
[INFO] [stdout]      |                                      `link` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  700 |                       if (self.link_filter)(Link::from(&*link), others).await {
[INFO] [stdout]      |                          ----------------------------------------------------
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          `__awaitee` calls a custom destructor
[INFO] [stdout]      |                          `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  729 |                   TaskEvent::LinkEvent { id, event } => {
[INFO] [stdout]      |                                              -----
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  810 |                                   } else { match self
[INFO] [stdout]      |  ________________________________________________^
[INFO] [stdout]      | |________________________________________________|
[INFO] [stdout]  811 | |                                     .write_rx
[INFO] [stdout]  812 | |                                     .as_mut()
[INFO] [stdout]  813 | |                                     .filter(|_| tx_seq_avail && link.is_sendable())
[INFO] [stdout] ...    |
[INFO] [stdout]  818 | |                                         .ok()
[INFO] [stdout]  819 | |                                     })
[INFO] [stdout]      | |                                      ^
[INFO] [stdout]      | |______________________________________|
[INFO] [stdout]      | |______________________________________this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  844 | |                                 }}}
[INFO] [stdout]      | |                                   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...    |
[INFO] [stdout]  996 | |                 TaskEvent::ConsumeReceived { received, permit } => {
[INFO] [stdout]      | |                                              --------  ------
[INFO] [stdout]      | |                                              |         |
[INFO] [stdout]      | |                                              |         `permit` calls a custom destructor
[INFO] [stdout]      | |                                              |         `permit` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                                              `received` calls a custom destructor
[INFO] [stdout]      | |                                              `received` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout]  999 | |                         ReliableMsg::Data(data) => {
[INFO] [stdout]      | |                                           ----
[INFO] [stdout]      | |                                           |
[INFO] [stdout]      | |                                           `data` calls a custom destructor
[INFO] [stdout]      | |                                           `data` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 1003 | |                                 permit.send(data);
[INFO] [stdout]      | |                                 -----------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `event` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `output` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `output` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures_init` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures_init` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `futures` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `futures` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/oneshot.rs:871:1
[INFO] [stdout]      |
[INFO] [stdout]  871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1013:1
[INFO] [stdout]      |
[INFO] [stdout] 1013 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:485:1
[INFO] [stdout]      |
[INFO] [stdout]  485 | impl<T, S: Semaphore> Drop for Rx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/watch.rs:1458:1
[INFO] [stdout]      |
[INFO] [stdout] 1458 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `link` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `received` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `permit` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/bounded.rs:1920:1
[INFO] [stdout]      |
[INFO] [stdout] 1920 | impl<T> Drop for OwnedPermit<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `data` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/control.rs:382:42
[INFO] [stdout]     |
[INFO] [stdout] 334 |             let client_secret = StaticSecret::from(random);
[INFO] [stdout]     |                 -------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `client_secret` calls a custom destructor
[INFO] [stdout]     |                 `client_secret` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 348 |             let shared_secret = client_secret.diffie_hellman(&server_public_key);
[INFO] [stdout]     |                 -------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `shared_secret` calls a custom destructor
[INFO] [stdout]     |                 `shared_secret` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 382 |             match LinkMsg::recv(&mut rx).await? {
[INFO] [stdout]     |                                          ^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 390 |         })
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `client_secret` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/src/x25519.rs:195:40
[INFO] [stdout]     |
[INFO] [stdout] 195 | #[cfg_attr(feature = "zeroize", derive(Zeroize))]
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout] note: `shared_secret` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/src/x25519.rs:273:40
[INFO] [stdout]     |
[INFO] [stdout] 273 | #[cfg_attr(feature = "zeroize", derive(Zeroize))]
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the derive macro `Zeroize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/acceptor.rs:387:27
[INFO] [stdout]     |
[INFO] [stdout] 387 |                     match wrapper.wrap(stream_box).await {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                           |                        |
[INFO] [stdout]     |                           |                        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                           |                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 391 |                             let _ = link_error_tx.send(BoxLinkError::incoming(&tag, err));
[INFO] [stdout]     |                                     -----------------------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 395 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/transport/connector.rs:415:35
[INFO] [stdout]      |
[INFO] [stdout]  415 |                             match wrapper.wrap(stream_box).await {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                   |                        |
[INFO] [stdout]      |                                   |                        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                   |                        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                   |                        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                   up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  419 |                                     let _ = link_error_tx.send(BoxLinkError::outgoing(conn_id, &tag, err));
[INFO] [stdout]      |                                             --------------------------------------------------------------
[INFO] [stdout]      |                                             |
[INFO] [stdout]      |                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  420 |                                     sleep(reconnect_delay).await;
[INFO] [stdout]      |                                     ----------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  424 |                         }
[INFO] [stdout]      |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `__awaitee` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.51.1/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Future<Output = usize>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]     --> src/agg/task.rs:1402:10
[INFO] [stdout]      |
[INFO] [stdout] 1402 |     ) -> impl Future<Output = usize> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]     --> src/agg/task.rs:1401:9
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |         ^
[INFO] [stdout]      = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]      = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/multi_link.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed tests/test_data/mod.rs (4 fixes)
[INFO] [stderr]    Migrating tests/single_link.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.95s
[INFO] [stderr] crater-edition-check: aggligator v0.9.11 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking aggligator v0.9.11 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:526:70
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  526 |             let next_link_testing = (0..self.links.len()).filter_map(|id| self.link_testing_step(id)).min();
[INFO] [stdout]      |                                                                      ^^^^ ---- second borrow occurs due to use of value in closure
[INFO] [stdout]      |                                                                      |
[INFO] [stdout]      |                                                                      mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:547:34
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  547 |             let terminate_task = async {
[INFO] [stdout]      |                                  ^^^^^ mutable borrow occurs here
[INFO] [stdout]  548 |                 match self.terminate_rx.recv().await {
[INFO] [stdout]      |                       ----------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:555:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  555 |             let new_link_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout]  556 |                 match &mut self.link_rx {
[INFO] [stdout]      |                            ------------ second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:555:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  555 |             let new_link_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  558 |                         TaskEvent::NewLink(Box::new(self.init_links.pop_front().unwrap()))
[INFO] [stdout]      |                                                     --------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:571:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  571 |             let write_rx_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  575 |                     match &mut self.write_rx {
[INFO] [stdout]      |                                ------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:600:29
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  600 |               let link_task = async {
[INFO] [stdout]      |                               ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  604 |                       let mut tasks: Vec<_> = self
[INFO] [stdout]      |  _____________________________________________-
[INFO] [stdout]  605 | |                         .links
[INFO] [stdout]      | |______________________________- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                   link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                             ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:618:36
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  618 |             let read_closed_task = async {
[INFO] [stdout]      |                                    ^^^^^ mutable borrow occurs here
[INFO] [stdout]  619 |                 match &mut self.read_closed_rx {
[INFO] [stdout]      |                            ------------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:629:31
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  629 |             let resend_task = async {
[INFO] [stdout]      |                               ^^^^^ mutable borrow occurs here
[INFO] [stdout]  630 |                 if resending && sendable_idle_link_id.is_some() {
[INFO] [stdout]  631 |                     self.resend_queue.pop_front().unwrap()
[INFO] [stdout]      |                     ----------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:638:32
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  638 |             let consume_task = async {
[INFO] [stdout]      |                                ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  643 |                                 received: self.rxed_reliable_consumable.pop_front().unwrap(),
[INFO] [stdout]      |                                           ----------------------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:675:28
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________________-
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  675 | |                 Some(()) = self.refused_links_tasks.next(), if !self.refused_links_tasks.is_empty()
[INFO] [stdout]      | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout]  676 | |                     => TaskEvent::RefusedLinkTask,
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |_____________- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:677:28
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________________-
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]      | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |_____________- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:526:70
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  526 |             let next_link_testing = (0..self.links.len()).filter_map(|id| self.link_testing_step(id)).min();
[INFO] [stdout]      |                                                                      ^^^^ ---- second borrow occurs due to use of value in closure
[INFO] [stdout]      |                                                                      |
[INFO] [stdout]      |                                                                      mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:547:34
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  547 |             let terminate_task = async {
[INFO] [stdout]      |                                  ^^^^^ mutable borrow occurs here
[INFO] [stdout]  548 |                 match self.terminate_rx.recv().await {
[INFO] [stdout]      |                       ----------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:555:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  555 |             let new_link_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout]  556 |                 match &mut self.link_rx {
[INFO] [stdout]      |                            ------------ second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:555:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  555 |             let new_link_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  558 |                         TaskEvent::NewLink(Box::new(self.init_links.pop_front().unwrap()))
[INFO] [stdout]      |                                                     --------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:571:33
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  571 |             let write_rx_task = async {
[INFO] [stdout]      |                                 ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  575 |                     match &mut self.write_rx {
[INFO] [stdout]      |                                ------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:600:29
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  600 |               let link_task = async {
[INFO] [stdout]      |                               ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  604 |                       let mut tasks: Vec<_> = self
[INFO] [stdout]      |  _____________________________________________-
[INFO] [stdout]  605 | |                         .links
[INFO] [stdout]      | |______________________________- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                   link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                             ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:618:36
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  618 |             let read_closed_task = async {
[INFO] [stdout]      |                                    ^^^^^ mutable borrow occurs here
[INFO] [stdout]  619 |                 match &mut self.read_closed_rx {
[INFO] [stdout]      |                            ------------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:629:31
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  629 |             let resend_task = async {
[INFO] [stdout]      |                               ^^^^^ mutable borrow occurs here
[INFO] [stdout]  630 |                 if resending && sendable_idle_link_id.is_some() {
[INFO] [stdout]  631 |                     self.resend_queue.pop_front().unwrap()
[INFO] [stdout]      |                     ----------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:638:32
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  638 |             let consume_task = async {
[INFO] [stdout]      |                                ^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  643 |                                 received: self.rxed_reliable_consumable.pop_front().unwrap(),
[INFO] [stdout]      |                                           ----------------------------- second borrow occurs due to use of value in coroutine
[INFO] [stdout] ...
[INFO] [stdout]  666 |                 link_id = next_pong_timeout => TaskEvent::LinkPingTimeout(link_id),
[INFO] [stdout]      |                           ----------------- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:675:28
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________________-
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  675 | |                 Some(()) = self.refused_links_tasks.next(), if !self.refused_links_tasks.is_empty()
[INFO] [stdout]      | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout]  676 | |                     => TaskEvent::RefusedLinkTask,
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |_____________- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
[INFO] [stdout]     --> src/agg/task.rs:677:28
[INFO] [stdout]      |
[INFO] [stdout]  513 |                   self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                   ---- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout]  659 |               let event = select! {
[INFO] [stdout]      |  _________________________-
[INFO] [stdout]  660 | |                 terminate_event = terminate_task => terminate_event,
[INFO] [stdout]  661 | |                 new_link_event = new_link_task => new_link_event,
[INFO] [stdout]  662 | |                 ((id, event), _, _) = link_task => TaskEvent::LinkEvent { id, event },
[INFO] [stdout] ...    |
[INFO] [stdout]  677 | |                 Some(()) = self.server_changed_rx.recv() => TaskEvent::ServerChanged,
[INFO] [stdout]      | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout]  678 | |             };
[INFO] [stdout]      | |_____________- immutable borrow later used here
[INFO] [stdout]      |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]     --> src/agg/task.rs:513:17
[INFO] [stdout]      |
[INFO] [stdout]  513 |                 self.earliest_link_specific_timeout(self.cfg.link_ping_timeout, |link| link.current_ping_sent);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]     --> src/agg/task.rs:1401:45
[INFO] [stdout]      |
[INFO] [stdout] 1401 |         &self, timeout: Duration, since_fn: impl Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>,
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]      |
[INFO] [stdout] 1400 ~     fn earliest_link_specific_timeout<T: Fn(&LinkInt<TX, RX, TAG>) -> Option<Instant>>(
[INFO] [stdout] 1401 ~         &self, timeout: Duration, since_fn: T,
[INFO] [stdout] 1402 ~     ) -> impl Future<Output = usize> + use<TX, RX, TAG, T> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0502`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aggligator` (lib test) due to 11 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0502`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aggligator` (lib) due to 11 previous errors
[INFO] running `Command { std: "docker" "inspect" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351", kill_on_drop: false }`
[INFO] [stdout] 75ae8352f2a7fb47ebe8291f428258f5f785469235b7cc0f5af6bc08dc1c8351
